package com.fqgj.xjd.user.client;


import com.fqgj.common.api.Response;
import com.fqgj.xjd.user.client.request.ShumeiDevice;
import com.fqgj.xjd.user.client.request.ShumeiPageQueryRO;
import com.fqgj.xjd.user.client.request.TongDunDevice;
import com.fqgj.xjd.user.client.request.UserDevice;

import java.util.List;
import java.util.Map;

/**
 * Created with IntelliJ IDEA.
 * User: sm
 * Date: 2017/3/20
 * Time: 下午3:55
 */
public interface UserDeviceService {
    /**
     * 添加数美的设备信息
     *
     * @param shumeiDevice
     * @return
     */
    Response<Boolean> addShumeiInfo(String userCode, ShumeiDevice shumeiDevice);

    /**
     * @param userCode
     * @return
     */
    Response<ShumeiDevice> getShumeiDeviceByUserCode(String userCode);

    /**
     * 根据条件查询数美信息
     * @param shumeiPageQueryRO
     * @return
     */
    Response<List<ShumeiDevice>> getShuMeiDeviceListByPage(ShumeiPageQueryRO shumeiPageQueryRO);

    /**
     * @param userCode
     * @param userDevice
     * @return
     */
    @Deprecated
    Response<Boolean> addNewDevice(String userCode, UserDevice userDevice);

    /**
     * @param userDevice
     * @return
     */
    Response<Boolean> addNewDevice(UserDevice userDevice);

    /**
     * @param userCode
     * @return
     */
    Response<UserDevice> getUserDeviceListByUserCode(String userCode);

    /**
     * 根据用户ID和guestId获取设备
     *
     * @param userCode
     * @return
     */
    Response<UserDevice> getDeviceByUserCodeAndGuestId(String userCode, String guestId);


    /**
     * 获取当前用户的最新的设备wifi map。结果为用户id和wifi名称的映射
     *
     * @param userCodes
     * @return
     */
    Response<Map<String, String>> getUserLatestWifiNameMapByUserCodes(List<String> userCodes);

    /**
     * 添加同盾的设备信息
     */
    Response<Boolean> addTongDunDeviceInfo(TongDunDevice tongDunDevice);

    /**
     * 获取同盾的设备信息
     */
    Response<TongDunDevice> getTongDunDeviceInfo(String userCode);
}
